﻿
namespace nMongo
{
    /// <summary>
    /// Enumerate the types of MongoPersistencyStatistics entity states.
    /// </summary>
    public enum MongoPersistencyState
    {
        /// <summary>
        /// The persistency control was unable to determine the state of the object.
        /// </summary>
        Unknown,

        /// <summary>
        /// Current object instance are retrieved from the database and it is stored inside his collection.
        /// </summary>
        Retrieved,

        /// <summary>
        /// Current object was saved to the database.
        /// </summary>
        Saved,

        /// <summary>
        /// Current object was removed from the database and it is no longer stored inside his collection.
        /// </summary>
        Removed,

        /// <summary>
        /// Current object is not a class marked with the <see cref="BsonIdAttribute"/>.
        /// </summary>
        NotABsonClass
    }
}
